草庐IT

SQLite 事务(Transaction)

全部标签

php - SQLite3,SQLSTATE[HY000] : General error: 5 database is locked

我有这个小测试脚本:session_start();session_write_close();error_reporting(-1);register_shutdown_function(function(){//echo'shutdown';});$MAX=120;set_time_limit($MAX);echodate('Y-m-dH:i:s').'';$m=microtime(true);$file_db=newPDO('sqlite:'.dirname(__FILE__).'/test.sqlite3');$file_db->setAttribute(PDO::ATTR_E

php - 如何使用 PHP SQLite3 执行 ATTACH DATABASE

我正在使用启用了sqlite3(版本0.7-dev)的PHP(版本5.3.13)。我希望能够使用SQLITE3功能来连接数据库,以便我可以执行JOINed查询,但每次我执行连接数据库时都会失败。$dbmain=newSQLite3('main.s3db');$results=$dbmain->exec("ATTACHDATABASEsupport.s3dbASckj");var_dump($results);var_dump总是显示false,我永远无法在ckj上查询。 最佳答案 您需要提供引用的完整路径。$myroot=$_SER

php - 一次提交中的 Magento 多个数据库事务

我知道在zend框架中怎么做$db->beginTransaction();try{$db->query(...);$db->query(...);$db->query(...);...$db->commit();}catch(Exception$e){$db->rollBack();}但我想用magento模型来做,比如$db->beginTransaction();try{$modelOne=Mage::getModel('modulename/table1');$modelTwo=Mage::getModel('modulename/table2');$modelThree=Ma

php - 什么是 PHP 和 SQLSRV 驱动程序中的 "New transaction is not allowed"错误?

我正在开发一个用PHP编写并使用SQLServer2008的Web应用程序。为了连接到数据库,我使用了Microsoft的SQLSRV驱动程序。在此应用程序的一部分中,我必须使用SQL事务。正如微软建议的那样,我完全是根据这篇文章做的。我的代码中的主要流程遵循以下步骤:1-启动sql事务2-通过jQuery向PHP文件发送信息并查看JSON发送的结果3-如果结果为假则回滚,如果为真则转到下一个查询。4-如果没有错误发生并且所有结果都正常,则提交事务。//Thisismypseudocodeif(sqlsrv_begin_transaction($sqlsrv->sqlsrvLink)=

php - 带有 try catch 的 PDO 事务语法

使用PDO事务和trycatch时首选的语法是什么?为什么?$dbh->beginTransaction();try{}catch(Exception$e){}或try{$dbh->beginTransaction();}catch(Exception$e){} 最佳答案 现有的答案似乎表明,由于$dbh->beginTransaction()可能会抛出一个PDOException,所以它应该在同一个try中实际事务代码块,但这意味着rollBack()代码本身是错误的,因为它可以在没有事务的情况下调用rollBack(),这也可以

php - Omnipay MiGS : how to handle users closing the browser after a successful transaction?

假设用户在被重定向到万事达卡付款后成功完成了交易,但在重定向回提供给Omnipay驱动程序的vpc_ReturnURL之前关闭了浏览器,有没有办法自动处理这个问题? 最佳答案 不幸的是,您不能直接通过MiGS自动处理它。使用3方版本(Migs_ThreeParty)时,您依赖于最终用户返回并点击completePurchase()方法。您可以设置cron作业来检测“放弃”的销售(实际上可能会或可能不会被放弃)以在您的万事达卡仪表板中手动协调,但MiGS不提供notifyUrl选项,也不用于类似于PayPal的IPN的基于网关的通知的

php - 在涉及 PDO 事务的嵌套原子操作方面需要帮助

我有两个可以独立使用的不同模块,但是Module2依赖于Module1。模块2有一个操作需要是原子的,它调用模块1中的一个操作也需要是原子的。假设我已将PDO::ATTR_ERRMODE设置为PDO:ERRMODE_EXCEPTION,以下高度通用化和截断的代码会产生以下结果:PHPfatalerror:未捕获的异常“PDOException”和消息“已经有一个事件事务”模块1:pdo->beginTransaction();try{$stmt=$this->pdo->prepare(...);...$this->pdo->commit();}catch(Exception$ex){$

java - 事务回滚问题中的 infinispan 缓存对象更新

我们希望在订单管理系统中使用infinispan作为内存数据库。在那里我们需要做以下类型的操作。这里的现金账户缓存包含从数据库加载的客户缓存账户。假设现金账户1的初始余额为1000,现金账户2为2000。我们在jboss7.1应用程序服务器的事务中更新两个现金账户。我们期望的结果是两个现金账户的余额保持不变,因为此操作发生在交易中。但不幸的是,即使在事务回滚之后,我们也可以在缓存中看到更新对象。实用我们检查的是当我们将一个对象添加到事务中的缓存时,当事务回滚时它将从缓存中删除。但对现有对象的修改保持原样。这只是我们想要做的一个例子。实际的涉及在单个事务中更新多个对象。能否请您告诉我们可

java - 如何在@Async 中捕获事务异常?

使用@Async编写事务方法时,无法捕获@Transactional异常。像ObjectOptimisticLockingFailureException,因为它们在事务提交期间被抛出到方法本身之外。例子:publicclassUpdateService{@AutowiredprivateCrudRepositorydao;//throwsegObjectOptimisticLockingFailureException.class,cannotbecaught@Async@TransactionalpublicvoidupdateEntity{MyEntityentity=dao.f

java - Spring 事务管理是否与 Spring WebFlux 一起使用?

Spring对RDBMS事务管理的支持在SpringWebFlux中是否也有效?例如,假设配置正确,使用@Transactional注解的方法是否会使用Spring事务管理器并在发生错误时回滚事务?如果事务管理确实有效,则必须有一个@Transactional方法实际throw和异常,或者必须Mono或Flux返回类型发出错误信号?我知道JDBC本质上是阻塞的,因此任何JDBC操作都必须从阻塞桥接到react桥,反之亦然。Spring事务管理器通过使用ThreadLocal(对吗?)来工作,我假设它不会在Reactor环境中工作,因为Reactor对线程很节省,并且单个线程可以换出一个